# bootloader memory.vhd (jtag bridge)
adr(11 downto 10)
DMEM: 0000000000000000 (0x0000) to 0000001111111111 (0x03FF)
IMEM: 0000010000000000 (0x0400) to 0000011111111111 (0x07FF)
CTRL: 0000110000000000 (0x0600) to 0000111111111111 (0x0FFF)

# bootloader devices.vhd
adr(13 downto 12)
OCRAM: 0000000000000000 (0x0000) to 0000111111111111 (0x0FFF)
COUNT: 0010000000000000 (0x2000) to 0010111111111111 (0x2FFF)
 UART: 0011000000000000 (0x3000) to 0011111111111111 (0x3FFF)

# bootloader.tcl (jtag memory access)
base address 400 when uploading code
base address 000 when uploading data

# Makefile
-Ttext=0x40000000 (text segment, 32-bit value with leading 0x4)

# crt0.S gcc result
lui sp, 0x1
semantically: sp = 8192 (0x1000)
